﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LaunchMeNot {
    public class LaunchMeNotException : Exception {
        public int Code { get; set; }

        /// <summary>
        /// Initializes a new empty <see cref="LaunchMeNotException"/>.
        /// </summary>
        public LaunchMeNotException() 
            : base() {
            this.Code = -1;
        }

        /// <summary>
        /// Initializes a new <see cref="LaunchMeNotException"/>.
        /// </summary>
        /// <param name="message">The message.</param>
        public LaunchMeNotException(string message)
            : base(message) {
            this.Code = -1;
        }

        /// <summary>
        /// Initializes a new <see cref="LaunchMeNotException"/>.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <param name="innerException">The inner exception.</param>
        public LaunchMeNotException(string message, Exception innerException)
            : base(message, innerException) {
        }

        /// <summary>
        /// Initializes a new <see cref="LaunchMeNotException"/>.
        /// </summary>
        /// <param name="code">The error code.</param>
        public LaunchMeNotException(int code) 
            :base() {
            this.Code = code;
        }

        /// <summary>
        /// Initializes a new <see cref="LaunchMeNotException"/>.
        /// </summary>
        /// <param name="code">The error code.</param>
        /// <param name="message">The message.</param>
        public LaunchMeNotException(int code, string message) 
            : base(message) {
            this.Code = code;
        }

        /// <summary>
        /// Initializes a new <see cref="LaunchMeNotException"/>.
        /// </summary>
        /// <param name="code">The error code.</param>
        /// <param name="message">The message.</param>
        /// <param name="innerException">The inner exception.</param>
        public LaunchMeNotException(int code, string message, Exception innerException)
            : base(message, innerException) {
            this.Code = code;
        }
    }
}
